package com.example.stock_trading.appium;

import io.appium.java_client.AppiumDriver;
import io.appium.java_client.android.AndroidElement;
import org.junit.FixMethodOrder;
import org.junit.Test;
import org.junit.runners.MethodSorters;

/**
 * @program: stock_trading
 * @description: 用来操作appium的所有操作, 后续需要做成整个工程的
 * @author: zhanghz001
 * @create: 2021-04-13 09:23
 **/
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
public class XiaoMi8Appium {
    
    @Test
    public void test1Login() throws InterruptedException {
        System.out.println("test1Login");
    }
    
    @Test
    public void test2Buy() throws InterruptedException {
        System.out.println("test2Buy");
        
    }
    
    @Test
    public void test3Sell() throws InterruptedException {
        System.out.println("test3Sell");
        
    }
    
    @Test
    public void test4Optional() throws InterruptedException {
        System.out.println("test4Optional");
        
    }
    
    //MobileElement
    private AppiumDriver<AndroidElement> driver = null;
    
    // @Test
    public void testIntallApp() {
        //    安装app到手机 
        driver.installApp("E:\\study_python\\测试相关安装软件和使用说明文档\\移动测试安装包\\移动测试window的安装包\\应用宝\\channel_86174669_1003361_ec8187d7dcf77fc0f92301713646ce99.apk");
    }
    
    // @Test
    public void testRemoveApp() {
        //     卸载手机中app 
        //     参数：app_id：需要卸载的app包名
        driver.removeApp("");
    }
    
    // @Test
    public void isAppInstalled() {
        //    参数：bundle_id: 可以传入app包名,返回结果为True(已安装) / False(未安装)
        driver.isAppInstalled("");
    }
    
    // @Test
    public void pullFile() {
        //从手机里面拉取文件
        driver.pullFile("");
    }
    
    // @Test
    public void pageSource() throws InterruptedException {
        // 获取当前屏幕内的元素结构,类似于html页面整个页面,其中我们需要的是其中的部分原始,意义不大
        String pageSource = driver.getPageSource();
        System.out.println(pageSource);
    }
    
    // @Test
    public void xpath() throws InterruptedException {
        //    Android端常用属性定位:
        // 1. id ://*[contains(@resource-id,'com.android.settings:id/search')]
        // 2. class ://*[contains(@class,'android.widget.ImageButton')]
        // 3. text ://*[contains(@text,'WLA')]
        
        // 模糊定位
        // 4. contains(@key,value): value可以是部分值
        // 所以在部分匹配的情况下,可以使用这个,还可以通过class匹配,这里不做展示了
        AndroidElement login = driver.findElementByXPath("//*[contains(@text,'登录')]");
    }
}
